// 引入 uni-ajax 模块
import ajax from '@/uni_modules/u-ajax'
import { useStore } from '@/stores/user'
import { systemStore } from '@/stores/system'
// 创建请求实例
const instance = ajax.create({
  // 初始配置
  baseURL: import.meta.env.VITE_APP_BASE_API
})

// 添加请求拦截器
instance.interceptors.request.use(
  (config) => {
    const UserStore = useStore()
    const system = systemStore()
    const token = UserStore.getToken
    console.log('system', system)
    /** *设置加载***/
    system.showLoading()
    if (token) {
      config.header['Authorization'] = 'Bearer ' + token
    }
    // 在发送请求前做些什么
    return config
  },
  (error) => {
    // 对请求错误做些什么
    return Promise.reject(error)
  }
)

// 添加响应拦截器
instance.interceptors.response.use(
  (response) => {
    const system = systemStore()
    /** *关闭加载***/
    system.hideLoading()
    // 对响应数据做些什么
    const {data } = response
    console.log('data',data)
    if(data.code === 200){
        //根据返回的数据做不同处理

      return  Promise.resolve(data.data || data.rows )
    }else if(data.code === 401) {
      system.setErrorMsg({
        msg: '登录过期了，是否前去登录?',
        type: 'login'
      })
      system.showError()
      return  Promise.reject(data)
    }else {
      system.setErrorMsg({
        msg:data.msg
      })
      system.showError()
      return  Promise.reject(data)
    }

  },
  (error) => {
    const system = systemStore()
    /** *关闭加载***/
    system.hideLoading()
    // 对响应错误做些什么
    return Promise.reject(error)
  }
)

// 导出 create 创建后的实例
export default instance
